package com.gongyinlian.personalprofilewebsiteserver.common.constant;

/**
 * 通用常量
 * 
 * @author personal-profile-website
 * @date 2024-10-27
 */
public interface CommonConstant {
    
    // ========== 系统相关 ==========
    /**
     * 系统名称
     */
    String SYSTEM_NAME = "Personal Profile Website";
    
    /**
     * 系统版本
     */
    String SYSTEM_VERSION = "2.0.0";
    
    /**
     * UTF-8 字符集
     */
    String UTF8 = "UTF-8";
    
    /**
     * GBK 字符集
     */
    String GBK = "GBK";
    
    // ========== 用户状态 ==========
    /**
     * 正常状态
     */
    Integer STATUS_NORMAL = 1;
    
    /**
     * 禁用状态
     */
    Integer STATUS_DISABLED = 0;
    
    // ========== 是否标识 ==========
    /**
     * 是
     */
    Integer YES = 1;
    
    /**
     * 否
     */
    Integer NO = 0;
    
    // ========== 删除标识 ==========
    /**
     * 未删除
     */
    Integer NOT_DELETED = 0;
    
    /**
     * 已删除
     */
    Integer DELETED = 1;
    
    // ========== 性别 ==========
    /**
     * 男
     */
    Integer GENDER_MALE = 1;
    
    /**
     * 女
     */
    Integer GENDER_FEMALE = 2;
    
    /**
     * 未知
     */
    Integer GENDER_UNKNOWN = 0;
    
    // ========== 排序规则 ==========
    /**
     * 升序
     */
    String ORDER_ASC = "ASC";
    
    /**
     * 降序
     */
    String ORDER_DESC = "DESC";
    
    // ========== 日期格式 ==========
    /**
     * 日期时间格式
     */
    String DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
    
    /**
     * 日期格式
     */
    String DATE_PATTERN = "yyyy-MM-dd";
    
    /**
     * 时间格式
     */
    String TIME_PATTERN = "HH:mm:ss";
    
    // ========== 分页参数 ==========
    /**
     * 默认页码
     */
    Integer DEFAULT_PAGE_NUM = 1;
    
    /**
     * 默认每页记录数
     */
    Integer DEFAULT_PAGE_SIZE = 10;
    
    /**
     * 最大每页记录数
     */
    Integer MAX_PAGE_SIZE = 100;
    
    // ========== 缓存相关 ==========
    /**
     * 缓存前缀
     */
    String CACHE_PREFIX = "portfolio:";
    
    /**
     * Token缓存前缀
     */
    String TOKEN_PREFIX = CACHE_PREFIX + "token:";
    
    /**
     * 用户缓存前缀
     */
    String USER_PREFIX = CACHE_PREFIX + "user:";
    
    /**
     * 验证码缓存前缀
     */
    String CAPTCHA_PREFIX = CACHE_PREFIX + "captcha:";
    
    // ========== 请求头 ==========
    /**
     * 请求ID
     */
    String REQUEST_ID = "X-Request-ID";
    
    /**
     * 用户代理
     */
    String USER_AGENT = "User-Agent";
    
    /**
     * 内容类型
     */
    String CONTENT_TYPE = "Content-Type";
    
    /**
     * 认证信息
     */
    String AUTHORIZATION = "Authorization";
    
    // ========== 响应头 ==========
    /**
     * 跨域允许源
     */
    String ACCESS_CONTROL_ALLOW_ORIGIN = "Access-Control-Allow-Origin";
    
    /**
     * 跨域允许方法
     */
    String ACCESS_CONTROL_ALLOW_METHODS = "Access-Control-Allow-Methods";
    
    /**
     * 跨域允许头
     */
    String ACCESS_CONTROL_ALLOW_HEADERS = "Access-Control-Allow-Headers";
    
    // ========== 内容类型 ==========
    /**
     * JSON类型
     */
    String APPLICATION_JSON = "application/json";
    
    /**
     * 表单类型
     */
    String APPLICATION_FORM = "application/x-www-form-urlencoded";
    
    /**
     * 文件上传类型
     */
    String MULTIPART_FORM = "multipart/form-data";
}

